perm filename MS.F4[NEW,LCS]15 blob
sn#592318 filedate 1981-06-09 generic text, type T, neo UTF8
00100 C ********** DISPLAYS MUSIC AND DRAWS IT ON THE PLOTTER **********
00200 C *** READS DATA FROM CLEFA-B-C-ETC., BDR40,BDI40, ETC.
00300
00400 IMPLICIT INTEGER(A-Q,S-Z)
00500 REAL DIS,DISX,A,B,STFF,CENTR,POS ,UD,XDIS
00600 DIMENSION LST(18),DP(0/7)
00700 COMMON /DL/X22,SAVER,NAME,EXT,IOLD /RRJJ/RJJ2,RJJ(20),JJA
00800 1 /FONT/JFONT /RINP/R(10,80),RPOS(2,50),RI(200)
00900 2 /RMOD/RMODE2,RSET4,IBEAM,
01000 3 NOSET,STEM,STUP,NTC,ENDP,RAD,RDD,ITB,POSB
01100 4 /FRMT/F78F(1),FA1(1),FA5(1),ASK /SIZ/RSZ,JCEN,KCEN
01200 C ORDER OF COMMON MUST! REMAIN AS IS (FOR DMP MODE READ)
01300 COMMON /LIMIT/LIMIT,ITEM,L,I,IX,ITEMX,ILIM
01400 1 /STF/RSTFAC(0/7),RSTJ2
01500 2 /POSI/STFF(0/7),JJ2,POS /ALF/INP(72),ML
01600 3 /SCM/V(78),ISCR,LCNT,RSTF,LIST(200),REND
01700 4 /UPDWN/ RL,UD /IDEV/IDEV,CHNG /NUM/NUM(10),JRD
01800 5 /PLTR/PLT,RHT,DIS,XDIS /PTR/PWDS(350)
01900 COMMON/A2Z/LAA,LBB,LCC,LDD,LEE,LFF,LGG,LHH,LII,LJJ,LKK,LEL,LMM
02000 1 ,LNN,LOH,LPP,LQQ,LRR,LSS,LTT,LUU,LVV,LWW,LXX,LYY,LZZ
02100 2 /JCHAR/IXX,ISEMI,IBLA,IG,JED,KED,REDIT,RITEM
02200 COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20) /RNW/RNW /MKS/MKS(14)
02300 1 /XRN/RN(3000) /DPY/ST(4000),MEDIT,IGO /DPTR/WDS(350)
02400 2 /MKX/MKX(11) /SC/SSC(72) /YED/YED,IBOX,RBOX/JCLIP/JCLIP
02500 1 /CHK/ICHK,ITCHK,JIT,SPD,IDPY,M
02600 EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R5,RJQ(3)),(I4,
02700 1 INP(4)),(R6,RJQ(4)),(J10,JQ(8)),(J6,JQ(4)),(R4,RJQ(2)),(R7,
02800 2 RJQ(5)),(R3,RJQ(1)),(I2,INP(2)),(I1,INP(1)),(I3,INP(3)),
02900 3 (RJ13,RJJ(11))
03000 4,(R11,RJQ(9)),(NJR,R10,RJQ(8)),(R8,RJQ(6)),(RJ3,RJJ(1)),(R9,
03100 5 RJQ(7)),(RX3,RJQ(20)),(ST2,ST(2)),(R13,RJQ(11)),(J8,JQ(6))
03200 6 ,(J13,JQ(11)),(IPOS,POS),(LST(13),K),(LST(14),X),(LST(15),J)
03300 7 ,(I7,INP(7)) ,(ISTAR,MKX(11))
03400 1 ,(MINUS,MKX(10)),(LESS,MKX(3)),(IGT,MKX(4)),(RJ7,RJJ(5))
03500 DATA NUM/'0','1','2','3','4','5','6','7','8','9'/,JRD/0/,ILIM/350/
03600 1 ,STFF/-469.,-346.,-223.,-100.,23.,146.,269.,392./,RSTFAC/8*1./
03700 2 ,LST/'NOTE','REST','CLEF','LINE','SLUR','BEAM','TRILL','STAFF',
03800 3 'MISC','NUMB','LIBRY','CIRCL',0,0,0,'WORD','KSIG','METER'/
03900 4 ,DP/8*1/,RNW/2.44/,LCNT/1/,LIMIT/3000/,DIS/1.0/, RHT/1.0/
04000 5 ,PLUS/'+'/,EXT/'MS '/,COMMA/','/,FILNAM/'INIT'/
04100 DATA MKS/'W','A','F','S','M','T','D','U','H','I','P','C','R','O'/
04200 C THE GIANT NUMBERS ARE FOR [ AND ]
04300 DATA MKX/'/',';','<','>',-19728949184,-18655207360,'(',')','.'
04400 1,'-','*'/,SSC(14)/'X'/,SSC(15)/';'/,SSC(72)/' '/
04500 C LIMIT IS MAIN ARRAY LENGTH (3000) /SC/SSC ARRAY USED IN MARKS,BEAMS,SLURS
04600 C 350 LIM. ON ITEMS PWDS, WDS (SEE ALSO 571 TO 170)
04700
04800 C***** CALL SEGFIX C FOR UPPER SEGMENTS USED BY MORE THAN 1 JOB (SEGFIX.FAI[TVR])
04900 IDEV=5
05000 I1=0
05100 CALL TYPLOC(450,200)
05200 10 CALL DPYX
05300 C THIS DOES DPYSET, ETC.
05400 DO 20 K=1,I
05500 CLEARS ARRAY FOR RESTART OF 'SETUP' ROUTINE
05600 20 RN(K)=0
05700 JFONT=0
05800 CHNG=0
05900 C flag for edit changes (=-1 means a change has been made.)
06000 IOLD=0
06100 C IOLD HOLDS LAST ITEM NUM. EDITED.
06200 IX=0
06300 RSET4=999
06400 QUICK=0
06500 CB=0
06600 C CB IS CENTER-BIG (CENTERING RANGE=6)
06700 UD=1
06800 RL=1
06900 FSCN=LEL
07000 RPOS(1,1)=0
07100 RSZ=.845
07200 JCLIP=525
07300 X22=0
07400 MINUZ=0
07500 C MINUZ IS FLAG FOR '-' SETTING CRLF BACKUP FEATURE (WHEN IN EDIT MODE)
07600 JCEN=0
07700 KCEN=0
07800 PLT=0
07900 PWDS(1)=1
08000 EDQ=-1
08100 RN(2)=0
08200 C FOR RESTART. AVOIDS STAFF CODE NUM.
08300 SAVER=4
08400 DO 30 K=0,7
08500 30 RSTFAC(K)=1.
08600 REDIT=999.
08700 M=1
08800 ITEM=0
08900 ITEMX=0
09000 ZERO=-1
09100 WDS(1)=4
09200 C DATA IN DPY ARRAY STARTS AT WD.4!
09300 I=1
09400 40 SCORE=-1
09500 50 IGO=-1
09600 IF(I1.NE.LRR)GO TO 130
09700 I1=-1
09800 CALL NAMEXT(INP,NAME,EXT)
09900 J2=0
10000 IF(NAME.NE.IBLA)GO TO 2250
10100 C YOU CAN TYPE 'RS NAME' FOR QUICK RESTARTS
10200 GO TO 130
10300
10400 60 CALL NOTWRT
10500 70 IF(M.GT.I)GO TO 80
10600 CC IF(IGO)CALL DPYOUT(1)
10700 C11/80 IF(IGO)CALL DPYDO(1)
10800 IF(IGO)CALL DPYDO(1)
10900 C12/80 IF(IGO.LT.0.AND.X22.EQ.0)CALL DPYDO(1)
11000 C DPYOUT DONE IN 'BOX' IF CURSOR IS TO APPEAR ALSO.
11100 80 ITEM=ITEM+1
11200 IF(ITEM.LT.ILIM)GO TO 90
11300 CALL TYPSTR('**** TOO MANY ITEMS')
11400 CALL TYPINT(ITEM)
11500 CALL TYPSTR('/349')
11600 CALL TYPCRLF
11700 I=PWDS(ILIM)
11800 ITEM=ILIM-1
11900 ST2=WDS(ILIM)
12000 CC CALL DPYOUT(1)
12100 CALL DPYDO(1)
12200 GO TO 40
12300 90 IF(IGO.GT.0)GO TO 100
12400 K=ST2
12500 IF(X22.EQ.0)GO TO 100
12600 CALL BOX(IBOX,RBOX)
12700 ST2=K
12800 100 WDS(ITEM+1)=ST2
12900 IF(EDQ.EQ.-1)GO TO 110
13000 IF(M.LT.I)GO TO 2370
13100 C SL=SAVE AFTER RESETTING LENGTH OF PAGE. (SEE I2 IN SCX)
13200 110 PWDS(ITEM+1)=I
13300 PLT=0
13400 IF(IGO.NE.0)GO TO 120
13500 CC CALL DPYOUT(1)
13600 CALL DPYDO(1)
13700 IF(SCORE.EQ.0)GO TO 1000
13800 C GO GET MORE FROM SCX.
13900 IGO=-1
14000
14100 120 IF(SCORE.EQ.0)GO TO 1070
14200 130 SVST=ST2
14300 C CATCHES TYPO WITH 'C'
14400 K=ITEM+1
14500 IF(X22.EQ.0)GO TO 250
14600 C 'N' SUPPRESSES TYPE-OUT, 'P' OR NEW ITEM RESTORES IT.
14700 IF(QUICK)170,140,290
14800 C -1=QUICK MODE, +1=SUPPRESS TYPE-OUT OF PARAMS, 2=AS 1, BUT RESETS AT C
14900 140 L=RN(MEDIT+1)
15000 K=X22
15100 CXX IF(IDEV.EQ.1)GO TO 250
15200 IF(IDEV.EQ.1)GO TO 290
15300 C 'FILE'CAN BE USED WHILE IN EDIT MODE
15400 CALL TYPCRL
15500 CALL TYPWRD(LST(L))
15600 CALL TYPCRL
15700 CALL TYPFLT(RN(MEDIT+1))
15800 CALL TYPCHR(' ',3)
15900 CALL TYPFLT(RN(MEDIT+2))
16000 CALL TYPCHR(' ',3)
16100 CALL TYPFLT(RN(MEDIT+3))
16200 IF(YED.LT.2)GO TO 260
16300 C YED IS SET AT 426
16400 DO 150 L=4,YED+2
16500 CALL TYPCHR(' (',4)
16600 CALL TYPINT(L)
16700 CALL TYPCHR(') ',2)
16800 150 CALL TYPFLT(RN(MEDIT+L))
16900 CALL TYPCRL
17000 GO TO 260
17100
17200 160 IF(X22.EQ.0)GO TO 260
17300 QUICK=-1
17400 CALL TYPSTR(';=LFT :=RT (=UP )=DN /=HALF *=*2')
17500 CALL TYPCRL
17600 170 CALL FSCAN
17700 C FNUM.FAI=FAST COMMANDS ;=← :=→ (=↑ )= /=HALF *=*2 X=X C=C OTHERS=CR
17800 GO TO 380
17900 GO TO 400
18000 GO TO 410
18100 GO TO 420
18200 GO TO 450
18300 GO TO 470
18400 GO TO 430
18500 GO TO 440
18600 I1=0
18700 180 QUICK=0
18800 GO TO 330
18900
19000 190 FORMAT(2A5)
19100 200 REREAD 190,K,K
19200 IF(I4.NE.LPP)GO TO 210
19300 CALL HELP(K)
19400 GO TO 130
19500 210 CALL LO2UP(K)
19600 C CHANGES LOWER CASE TO UPPER CASE
19700 IF(K.NE.IBLA)GO TO 215
19800 K=FILNAM
19900 CALL TYPSTR('READING ')
20000 CALL TYPWRD(K)
20100 CALL TYPCRL
20200 215 FILNAM=K
20300 C SAVE NAME FOR LATER USE. 'READ' OR 'RR' ALONE READS PREVIOUS FILE.
20400 IF(LOOK(K)+LOOKD(K))GO TO 220
20500 CALL TYPSTR(' FILE NOT FOUND')
20600 GO TO 260
20700 CC2502 CALL IFILE(1,K)
20800 220 CALL FILX(K)
20900 C GOBBLES ET HEADER OR CONVERTS SOS FILE
21000 230 IDEV=1
21100 GO TO 290
21200
21300 240 IDEV=5
21400 GO TO 260
21500 C RESET TO TTY MODE
21600
21700 250 CALL HYDPOG(3)
21800 C TO DELETE VERTICAL LINE (55)
21900 KED=0
22000 QUICK=0
22100 C RESET PARAM TYPE-OUT
22200 RJ13=0
22300 C KILL CENTERING FEATURE FOR NOW
22400 260 IF(IDEV.EQ.1)GO TO 290
22500 CALL TYPCRL
22600 IF(X22.EQ.0)GO TO 270
22700 CALL TYPSTR('**** EDIT ITEM #')
22800 CALL TYPINT(K)
22900 GO TO 280
23000 270 CALL TYPWRD(NAME)
23100 CALL TYPCHR('.',1)
23200 CALL TYPWRD(EXT)
23300 CALL TYPSTR(' TYPE FOR ITEM #')
23400 CALL TYPINT(K)
23500 CALL TYPSTR(' ')
23600 CALL TYPINT(I)
23700 CALL TYPSTR(' ')
23800 CALL TYPINT(SVST)
23900 280 CALL TYPCRL
24000 290 SCORE=-1
24100 CQQ ACCEPT 89,INP
24200 READ(IDEV,700,END=240)INP
24300 IF(I1.EQ.LESS)GO TO 240
24400 C '<' = TEMPORARY ESCAPE FROM 'FILE' MODE
24500 IF(I1.NE.IGT)GO TO 300
24600 C '>' = RETURN TO 'FILE' MODE - IF NOT STILL EDITING.
24700 IF(X22.NE.0)GO TO 260
24800 GO TO 230
24900 300 IF(I1.EQ.':')CALL CMDIN
25000 IF(I1.EQ.ISEMI)CALL CMDIN
25100 C TYPE : AS FIRST ITEM TO SAVE COMMAND LINE. TYPE ; TO REPEAT IT.
25200 CALL LULOOP
25300 IF(IDEV.EQ.5)GO TO 320
25400 IF(I7.NE.LTT)GO TO 320
25500 IF(I1.NE.LCC)GO TO 320
25600 C 'ET' DIRECTORY? UGH!!!
25700 310 READ(IDEV,700)INP
25800 IF(I3.NE.ISEMI)GO TO 310
25900 READ(IDEV,700)INP
26000 C READ AGAIN TO GET PAGE MARK - OR SOMETHING???
26100 GO TO 290
26200 C****320 REREAD 2430,J,R2,RJQ
26300 C ↑↑↑ 1/78
26400 320 CALL READX
26500 CRR J=JA
26600 C FIRST CATCHES BLANKS, NUMBERS, ETC.
26700 330 IF(I1.GT.COMMA)GO TO 900
26800 IF(I1.EQ.IBLA)GO TO 900
26900 IF(I1.EQ.LII)GO TO 740
27000 C I = IN, ITEM
27100 IF(I1.EQ.IXX)GO TO 640
27200 C X = EXIT
27300 IF(I1.EQ.LEL)GO TO 680
27400 C L = LEFT, LP=LIGHT PEN
27500 IF(I1.EQ.LUU)GO TO 680
27600 C U = UP
27700 IF(I1.EQ.LRR)GO TO 660
27800 C R = RIGHT, RI=RIT, READ, RS=RESTART
27900 IF(I1.EQ.LDD)GO TO 360
28000 C D = DOWN, DI=DIM, DE=DELETE
28100 IF(I1.EQ.LCC)GO TO 1740
28200 C C = COPY, CR=CRESC., CN=CENTER, CB=CENTER BIG, CH=ON HEAD, CT=ON TAIL
28300 C CX = UNCENTER CP n =CENTER BY NOTE POSITION CD=CENTER DASHES
28400 IF(I1.EQ.LSS)GO TO 490
28500 C S = SAVE, SPACING STAFF, STAFF, SHOW, SF, SFZ, SCALE, STC=STACCATO
28600 IF(I1.EQ.LEE)GO TO 540
28700 C E ED=EDIT WITH POS. FIRST, E=EDIT WITH LIGHT PEN, ES=EDIT WITH STAFF NUM
28800 IF(I1.EQ.LNN)GO TO 710
28900 C N = NO TYPE, NX = RESET TO NEXT ALPHABETICAL NAMED FILE
29000 IF(I1.EQ.LPP)GO TO 1150
29100 C P = P,PP,PPP, P N=PRINT PARAM N., PR=PRINT PARAM LIST, POCO, PIU, PZ=PIZZ,
29200 IF(I1.EQ.LAA)GO TO 350
29300 C A = ADJUST TO SET, AD=ADJUST STEMS, AC=ACCEL, AR=ARCO, AT=A TEMPO, ACT=ACCENT
29400 IF(I1.EQ.LQQ)GO TO 160
29500 C Q = QUICK
29600 IF(I1.EQ.LTT)GO TO 770
29700 C T = TYPE TEXT, T=TYPE OUT, TE=TENUTO, TL=TYPLOC
29800 IF(I1.EQ.LFF)GO TO 870
29900 C F = F,FF,FFF,FE=FERMATA,FILE(TO READ COMMAND FILE)
30000 IF(I1.EQ.LHH)GO TO 840
30100 C H = HARMONIC, HW=HEAVY WEDGE, HELP
30200 IF(I1.EQ.COMMA)GO TO 1460
30300 C VALUE OF COMMA IS > VALUE OF PLUS
30400 IF(I1.GE.PLUS)GO TO 900
30500 IF(X22.NE.0)GO TO 260
30600 C NEXT CANNOT HAPPEN IN EDIT MODE.
30700 C O = O=ORDER BY STAFF, OX=ORDER WITHOUT REGARD FOR STAFF NUM.
30800 IF(I1.NE.LOH)GO TO 340
30900 C NEXT FOR REORDERING ITEMS FROM LEFT TO RIGHT, BY STAFF. THEN IT DOES A
31000 IF(I2.EQ.LXX)R2=1
31100 CALL ORDER
31200 340 IF(I1.EQ.LZZ)GO TO 1170
31300 C Z = ZOOM
31400 IF(I1.EQ.LMM)GO TO 1770
31500 C M = MOVE, ME=MENO, MO=MOLTO, MF,MP
31600 IF(I1.EQ.LJJ)GO TO 1770
31700 C J = JUSTIFY JT=JUSTIFY TEXT
31800 IF(I1.EQ.LGG)GO TO 2220
31900 C G = GET, GM=GET MORE
32000 IF(I1.EQ.LWW)GO TO 850
32100 C W = WEDGE ACCENT
32200 IF(I1.EQ.'(')GO TO 1430
32300 IF(I1.EQ.')')GO TO 1450
32400 C LEFT AND RIGHT PARENTHESES
32500 IF(I1.NE.LBB)GO TO 260
32600 C******* ADD MORE LETTER ITEMS HERE *************
32700 C B = BRC=BRACE, BRK=BRACKET -- FOR FRONT OF LINE. BAR=BAR LINE.
32800 IF(X22.NE.0)GO TO 260
32900 CRR*** REREAD 2430,JA,JA,JA,R2,RJQ
33000 CRR*** J=4
33100 JA=4
33200 R7=5
33300 IF(I3.NE.LCC)R7=4
33400 IF(I3.EQ.LRR)R7=0
33500 GO TO 900
33600
33700 350 IF(I2.EQ.LDD)GO TO 570
33800 C 'A' = ALTER(GO TO 112) ADJUST(GO TO 886) ACCEL(GO TO 7813)
33900 C ALIGN=GO TO 886
34000 IF(X22.NE.0)GO TO 580
34100 IF(I2.EQ.LTT)GO TO 1410
34200 C AT=A TEMPO
34300 IF(I2.EQ.LRR)GO TO 1420
34400 C AR=ARCO
34500 IF(I2.NE.LCC)GO TO 1060
34600 IF(I3.EQ.LTT)GO TO 810
34700 C ACT=ACCENT. NEXT FOR AC (=ACCEL.)
34800 RD=80
34900 GO TO 880
35000
35100 360 IF(I2.GE.IBLA)GO TO 650
35200 C 'D' DIM →578, DOWN →883, DELETE →112 OR 883 DP →886
35300 IF(I2.NE.LEE)GO TO 370
35400 IF(X22.NE.0)GO TO 650
35500 GO TO 1060
35600 370 IF(I2.EQ.LPP)GO TO 570
35700 IF(I2.NE.LII)GO TO 260
35800 C NEXT FOR DIM.=82
35900 IF(X22.NE.0)GO TO 260
36000 RD=82
36100 GO TO 880
36200
36300 380 I1=LEL
36400 390 FSCN=I1
36500 GO TO 330
36600 400 I1=LRR
36700 GO TO 390
36800 410 I1=LUU
36900 GO TO 390
37000 420 I1=LDD
37100 GO TO 390
37200 430 I1=IXX
37300 GO TO 180
37400 440 I1=LCC
37500 GO TO 180
37600 450 I1=FSCN
37700 IF(FSCN.EQ.LEL)GO TO 460
37800 IF(FSCN.EQ.LRR)GO TO 460
37900 C NEXT FOR UP-DOWN
38000 UD=UD/2
38100 GO TO 330
38200 460 RL=RL/2
38300 GO TO 330
38400 470 I1=FSCN
38500 IF(I1.EQ.LEL)GO TO 480
38600 IF(I1.EQ.LRR)GO TO 480
38700 UD=UD*2
38800 GO TO 330
38900 480 RL=RL*2
39000 GO TO 330
39100
39200
39300 C 'S'=SET, SA=SAVE, SB=SAVE BIG, SM=BIG+SAME NAME, ST=STAFF, SP=SPC STF
39400 C SC=SPACING SCALE ABOVE STAFF n (99=DELETE IT)
39500 490 IF(I2.EQ.LTT)GO TO 560
39600 IF(I2.EQ.LAA)GO TO 520
39700 IF(I2.EQ.LCC)GO TO 580
39800 IF(I2.EQ.LDD)GO TO 520
39900 IF(I2.EQ.LEE)GO TO 530
40000 IF(I2.EQ.IBLA)GO TO 530
40100 IF(I2.EQ.LPP)GO TO 730
40200 IF(I2.EQ.LHH)JFONT=1
40300 IF(I3.EQ.IXX)JFONT=0
40400 IF(I3.EQ.LPP)JFONT=-1
40500 IF(I3.EQ.LOH)JFONT=-2
40600 IF(I3.EQ.LII)JFONT=-3
40700 C 'SH'(=SHOW) IS SAME AS 44 1. SHOWS TYPE FONTS ON DPY.
40800 C 'SHP' = SHOW ONLY AS 'PRIMITIVE' FONT, 'SHX' = CANCEL FONTS ON DPY.
40900 C 'SHO' = FONT SET (TEMPORARILY) TO 'BDR'; 'SHI' = 'BDI' (ITALICS)
41000 IF(I2.NE.LFF)GO TO 510
41100 RD=45
41200 IF(I3.NE.LZZ)GO TO 880
41300 RD=92
41400 CRR***500 REREAD 2430,JA,JA,JA,R2,RJQ
41500 500 R5=RD
41600 GO TO 890
41700 510 IF(I2.NE.LMM)GO TO 130
41800 C ONLY FOR ST, SA, SB, SM, RS, S, SF=45, SFZ=92
41900 520 IF(X22.NE.0)GO TO 130
42000 SAVER=4
42100 CALL SAVIT
42200 GO TO 130
42300 530 JA=55
42400 R2=RN(MEDIT+3)
42500 C POSITION OF ITEM LOOKED AT.
42600 R3=55.
42700 GO TO 1110
42800 C ABOVE FOR 'S'ET ALIGNMENT
42900 C 'S'=SET ALIGNMENT, 'A'=ALIGN IT. 'M'=MOVER 'C'= COPIER
43000 C 'E'=EDIT; 'I'=ITEM; 'G'=GET; 'GM'=GET MORE;
43100 540 K=-1
43200 DO 550 JA=3,10
43300 550 IF(INP(JA).NE.IBLA)GO TO 570
43400 GO TO 650
43500 CRR***560 FORMAT(A2,21F)
43600 CC IF(X22.NE.0)GO TO 59
43700 560 IF(I3.EQ.LCC)GO TO 830
43800 C STC=STACCATO
43900 570 IF(CHNG.NE.0)GO TO 130
44000 C CAN'T DO 'ST' AND OTHER THINGS AFTER CHANGES IN EDIT MODE.
44100 CRR***580 REREAD 560,K,R2,RJQ
44200 580 JA=55
44300 IF(I2.NE.LCC)GO TO 590
44400 CALL SCL
44500 GO TO 130
44600 590 IF(I2.NE.LDD)GO TO 600
44700 IF(I1.EQ.LAA)JA=190
44800 C 'AD'just stems to beams. 'A'=ADJUST LFT-RT POS. AFTER 'SET' COMMAND
44900 600 IF(I2.EQ.LTT)JA=44
45000 IF(I2.EQ.LNN)GO TO 950
45100 IF(I2.NE.LPP)GO TO 1110
45200 IF(DISAPR(DP).EQ.0)GO TO 120
45300 GO TO 1320
45400
45500 C 'LP'=LIGHT PEN. TO BE USED ONLY IN EDIT MODE
45600 640 IF(X22.EQ.0)GO TO 260
45700 C 'X' GO BACK IF NOT IN EDIT MODE -- ALSO R,L,U,D
45800 MINUZ=0
45900 C CLEAR MINUS SIGN FLAG
46000
46100 C NEXT FOR READ, RS, DEL, L,R,U,D
46200 650 IF(IX.EQ.I)GO TO 670
46300 C CAN'T DELETE ('DE') AFTER A PARAM HAS BEEN CHANGED. START OVER.
46400 IF(I2.NE.LEE)GO TO 680
46500 GO TO 130
46600
46700 C R = RIGHT MOVE, RI=RIT., RS=RESTART, READ=READ
46800 660 IF(I2.GE.IBLA)GO TO 680
46900 IF(I2.EQ.LEE)GO TO 200
47000 C ABOVE FOR 'READ'(SAME AS 'FILE')
47100 IF(X22.NE.0)GO TO 260
47200 C GO BACK IF STILL IN EDIT MODE.
47300 IF(I2.EQ.LSS)GO TO 10
47400 C TYPE 'RS' TO RESTART.
47500 CCCC IF(I2.EQ.LEE)GO TO 200
47600 C ABOVE FOR 'READ'(SAME AS 'FILE') NEXT FOR RIT.=37
47700 RD=37
47800 GO TO 880
47900
48000 670 IF(I1.EQ.LCC)GO TO 1650
48100 680 IF(I1.EQ.LEE)GO TO 690
48200 C ABOVE FOR 'ED' (WITH LIGHT PEN)
48300 IF(X22.EQ.0)GO TO 130
48400 C CAN'T MOVE ITEMS UNLESS REALLY IN EDIT MODE!
48500 IF(QUICK.EQ.0.AND.I2.NE.LEE)QUICK=2
48600 C NOW PARAMS DON'T PRINT OUT WHEN USING L,R,U,D***(BUT DE=DELETE)
48700 690 CALL EDIT(JJA)
48800 IF(JA.NE.99)GO TO 1110
48900 CALL DELETE
49000 C DELETE ROUTINE COULD BE PUT DIRECTLY IN HERE.
49100 GO TO 1700
49200 700 FORMAT(72A1)
49300 C TYPE L, R, U OR D OR EDIT TO MOVE LAST ENTERED ITEM.
49400
49500 710 IF(I2.NE.IXX.AND.I2.NE.LBB)GO TO 715
49600 C TYPE 'NX' TO RESTART WITH NEXT ALPHABETICAL FILE NAME (ONLY 5TH LETTER THOUGH.)
49700 C 'NB' BACKS UP ONE FILE
49800 IF(X22.NE.0)GO TO 130
49900 C DON'T GO TO NEXT IF IN EDIT MODE
50000 I1=LRR
50100 I4=PLUS
50200 IF(I2.EQ.LBB)I4=MINUS
50300 I2=LSS
50400 C I4 IS USUALLY NAME INPUT FILE
50500 GO TO 10
50600 715 IF(QUICK.NE.0)GO TO 720
50700 C ↑↑↑ SO 'N n' WILL WORK EVEN AFTER N HAS BEEN SET.
50800 QUICK=1
50900 C TYPE 'N' =NO-TYPE PARAMS TO SUPPRESS TYPE-OUT WHILE EDITING.
51000 IF(X22.NE.0)GO TO 730
51100 720 I1=LII
51200 C 'N n' WHEN NOT IN EDIT MODE = 'I n'<CR>,'N'<CR>
51300 730 IF(I1.NE.LII)GO TO 750
51400 740 IF(I2.EQ.LNN)GO TO 570
51500 C 'IN n,n,n,' MUST BE READ AGAIN AT 886 TO GET n'S CORRECTLY.
51600 JA=223
51700 C JA=223 FOR EDIT MODE
51800 IF(CHNG.NE.0)GO TO 130
51900 C AFTER A CHANGE OF AN ITEM, 'I', ETC. IS ILLEGAL.
52000 IF(R2.EQ.0)GO TO 1110
52100 IF(R2.LT.1.0)GO TO 130
52200 C CATCHES TYPOS. (I.E. DECI. NUMBER AFTER I)
52300 GO TO 1110
52400
52500 750 IF(K)JA=55
52600 C ED 47 -1 = 55 47 -1, ETC.
52700 IF(JA.EQ.101)GO TO 590
52800 IF(I1.NE.LNN)GO TO 760
52900 IF(R2.NE.0)GO TO 720
53000 C IF NO NUM FOLLOWS 'N' GO PRINT OUT CURRENT PARAMS.
53100 GO TO 290
53200
53300 C 'Z' = ZOOM (OLD CODE# 24)
53400 760 IF(I2.NE.LPP)GO TO 770
53500 CRR*** RSET4=R3
53600 RSET4=R2
53700 C SPn SETS "SETUP" STAFF NUMBER
53800 GO TO 130
53900 C 'SP' IS SAME AS 444
54000 C 'P n' = PRINT CURRENT CONTENTS OF PARAM n. (ONLY WHILE IN EDIT MODE.)
54100 770 IF(X22.EQ.0.OR.I2.EQ.LEL)GO TO 910
54200 C JUMP OUT IF 'TL' (TYPLOC)
54300 QUICK=0
54400 C TYPE 'T' TO RESET PARAM TYPE-OUT
54500 IF(R2.EQ.0)GO TO 130
54600 GO TO 720
54700
54800 780 RD=14
54900 C PLUS
55000 CRR***790 REREAD 560,JA,R2,RJQ
55100 CRR790 CONTINUE
55200 800 IF(X22.NE.0)GO TO 130
55300 C CAN'T ENTER NEW ITEM WHILE IN EDIT MODE.
55400 CRR*** J=9
55500 JA=9
55600 R5=RD
55700 IF(R4.EQ.0)R4=15
55800 GO TO 900
55900 810 RD=5
56000 C ACCENT
56100 CRR***820 REREAD 2430,J,J,J,R2,RJQ
56200 CRR820 GO TO 800
56300 GO TO 800
56400 830 RD=7
56500 C STACC.
56600 CRR*** GO TO 820
56700 GO TO 800
56800 840 IF(I3.EQ.LEL)GO TO 200
56900 C JUMP FOR HELP
57000 IF(X22.NE.0)GO TO 260
57100 C CAN'T DO NEXT IF STILL IN EDIT MODE.
57200 RD=13
57300 C HARMONIC
57400 IF(I2.EQ.LWW)RD=21
57500 C HEAVY WEDGE
57600 CRR*** GO TO 790
57700 GO TO 800
57800 850 RD=4
57900 C WEDGE
58000 CRR*** GO TO 790
58100 GO TO 800
58200
58300 CRR***860 REREAD 560,JA,R2,RJQ
58400 860 R5=26
58500 CRR*** J=9
58600 JA=9
58700 IF(R4.EQ.0)R4=12
58800 C FERMATA
58900 GO TO 900
59000
59100 870 IF(I2.EQ.LII)GO TO 200
59200 IF(X22.NE.0)GO TO 260
59300 R5=51
59400 C F=51 FF=52 FFF=53, FE=FERMATA, FILE
59500 IF(I2.EQ.IBLA)GO TO 890
59600 IF(I2.EQ.LEE)GO TO 860
59700 RD=53
59800 IF(I3.NE.IBLA)GO TO 500
59900 RD=52
60000 CRR***880 REREAD 560,JA,R2,RJQ
60100 880 R5=RD
60200 CRR***890 J=3
60300 890 JA=3
60400 IF(R4.EQ.0)R4=-5
60500 C ABOVE IS FOR DIRECT TYPING OF P,PP,PPP,MP,RIT., ETC.
60600 C IF PARAM 4 IS 0, PUTS IT -5 BELOW.
60700 CRR***900 JA=J
60800 900 IF(JA.GT.0)SAVER=SAVER-1
60900 IF(SAVER.LT.0.AND.CHNG.LT.0)CALL SAVIT
61000 C SAVES EVERY 5TH TIME AROUND (IF NO HANGING CHANGES IN DATA)
61100 IF(QUICK.EQ.2)QUICK=0
61200 C RESET QUICK(SUPRESSES PARAM PRINTOUT) IF CRLF AFTER L,R,U,D
61300 IF(X22.NE.0)GO TO 1110
61400 IOLD=0
61500 C RESET FLAG FOR "I" COMMAND
61600 IF(JA.EQ.0)GO TO 130
61700 C CATCHES ZEROS
61800 GO TO 1110
61900 C NEXT FOR ALPHA TEXT ITEMS. 'T'=TYPE
62000 910 IF(I2.NE.LEE)GO TO 920
62100 RD=9
62200 C TENUTO
62300 CRR*** GO TO 790
62400 GO TO 800
62500 920 IF(I2.NE.LEL)GO TO 940
62600 CRR*** J3=R3
62700 CRR*** J4=R4
62800 J3=R2
62900 J4=R3
63000 C 'TL' SET LOCATION OF TYPE OUT ON SCREEN
63100 IF(J4.EQ.0)J4=J3-200
63200 C OMIT 2ND NUM. AND GET N AND N-200.
63300 CRR*** IF(R3.NE.0)GO TO 930
63400 CRR*** IF(R4.NE.0)GO TO 930
63500 IF(R2.NE.0)GO TO 930
63600 IF(R3.NE.0)GO TO 930
63700 J4=0
63800 J3=450
63900 C 'TL' 0 0 PUTS IT BACK TO ORIG. LOC.
64000 930 CALL TYPLOC(J3,J4)
64100 GO TO 130
64200 940 JA=16
64300 C ????'T' = TEST INPUT
64400 J2=R2
64500 M=I
64600 CALL WORDS
64700 SAVER=SAVER-1
64800 IOLD=0
64900 GO TO 1340
65000
65100 950 IF(X22.NE.0)GO TO 130
65200 JA=140
65300 RMODE2=R3
65400 C ????? CHECK THIS TYPE 'IN STF# MODE' ETC. -- SAME AS 140 STF#.
65500 960 SCORE=0
65600 IF(JA.NE.140)GO TO 990
65700 C NEXT PUTS UP STAFF IF IT WASN'T THERE ALREADY
65800 SAVER=-1
65900 RSTF=R2
66000 C DO I NEED THE NEXT???
66100 IF(R3.LT.0)R3=0
66200 DO 970 K=1,ITEM
66300 J=PWDS(K)
66400 IF(RN(J+1).NE.8)GO TO 970
66500 IF(RN(J+2).EQ.R2)GO TO 980
66600 970 CONTINUE
66700 C DIDN'T FIND THIS STAFF
66800 M=LIMIT
66900 C ↑↑ WAS =2000 6/78
67000 IGO=0
67100 JA=8
67200 R3=0
67300 GO TO 1110
67400 980 JA=140
67500 ITCHK=ITEM
67600 ICHK=I
67700 IDPY=ST2
67800 C ALL THIS FOR BACKUPS
67900 990 SPD=ST2
68000 JIT=ITEM
68100 ISC=I
68200 REND=0
68300 C RETAINS ORIGINS OF SCORE SQUENCE
68400 1000 IF(REND.EQ.2)GO TO 990
68500 C FOR READIN CONTINUATION.
68600 M=ISC
68700 1010 IF(JA.EQ.8)GO TO 980
68800 IF(INSCOR(SCORE).EQ.0)GO TO 1340
68900 GO TO 130
69000
69100 1060 IGO=1
69200 CALL GRED
69300 JFONT=0
69400 IF(JA.EQ.98)GO TO 1080
69500 IF(I2.NE.LDD)GO TO 1065
69600 C FOR 'CD' CENTER DASHES
69700 JJ2=1
69800 GO TO 1785
69900 1065 KNT=0
70000 SCORE=0
70100
70200 1070 KNT=KNT+1
70300 C NUM OF ITEMS IN LIST
70400 R11=0
70500 R10=0
70600 R9=0
70700 JA=R(1,KNT)
70800 R2=R(2,KNT)
70900 IF(JA.NE.0)GO TO 1090
71000 C =0 MEANS NO MORE ITEMS.
71100 CC CALL DPYOUT(1)
71200 CALL DPYDO(1)
71300 GO TO 40
71400
71500 1080 X22=0
71600 IGO=-1
71700 CALL DPYNEW
71800 GO TO 120
71900
72000 1090 DO 1100 K=1,6
72100 1100 RJQ(K)=R(K+2,KNT)
72200 1110 M=1
72300 EDQ=-1
72400 IF(JA.EQ.222)GO TO 1650
72500 IF(JA.EQ.2222)GO TO 1670
72600 DO 1120 K=1,20
72700 1120 JQ(K)=RJQ(K)
72800 C X22= ITEM# WHEN EDITING OR DELETING.
72900 IF(X22.NE.0)GO TO 1610
73000 IF(JA.GT.0)GO TO 1130
73100 IF(R2.EQ.0)GO TO 130
73200 C FOR UP, DOWN, LEFT, RIGHT
73300 RJJ2=J2
73400 GO TO 1850
73500 C GOES BACK IF NEGATIVE AND NOT IN EDIT MODE.
73600 1130 IF(JA.EQ.223)GO TO 1500
73700 IF(JA.EQ.44)GO TO 1510
73800 C THIS '44' IS SET IN 'EDIT' - IT'S NEVER TYPED.
73900 IF(JA.EQ.55)GO TO 1480
74000 IF(JA.NE.190)GO TO 1860
74100 CC1140 CALL HOMER
74200 1140 CALL HOMX
74300 C GO ADJUST STEM LENGTHS
74400 GO TO 1790
74500
74600
74700
74800
74900
75000
75100
75200
75300
75400
00100
00200 1150 IF(X22.EQ.0)GO TO 1350
00300 C WHEN NOT IN EDIT MODE(X22=0) "P n n2" LISTS ALL PARAMS FOR ITEMS n→n2
00400 J2=R2
00500 TYPE 1160,J2,RJJ(J2-2)
00600 C TYPE P n TO SEE FULL CONTENTS OF PARAM. n.
00700 GO TO 130
00800 1160 FORMAT(I,F15.5)
00900
01000 1170 IF(X22.NE.0)GO TO 260
01100 CALL ZOOM
01200 1320 M=1
01300 I=PWDS(ITEM+1)
01400 ITEMX=ITEM
01500 C FOR USE IN CENTERING WHOLE RESTS (IN NOTWRT [NTSM.FAI])
01600 ITEM=0
01700 1330 ST2=3
01800 1340 PLT=1
01900 EDQ=0
02000 CALL ACCPOG(1)
02100 IF(JA.EQ.0)GO TO 2370
02200 IF(JA.NE.24)IGO=0
02300 GO TO 2370
02400
02500 1350 IF(I2.EQ.LRR)GO TO 1360
02600 C NOW TYPE 'PR' TO PRINT PARAMETER LIST
02700 IF(I2.EQ.LZZ)GO TO 1370
02800 C PIZZ
02900 R5=42
03000 IF(I2.EQ.IBLA)GO TO 890
03100 IF(I2.EQ.LPP)RD=41
03200 C PPP=40 PP=41 P=42 POCO=72 PIU=91
03300 IF(I2.EQ.LII)RD=91
03400 IF(I2.EQ.LOH)RD=72
03500 IF(I2.EQ.LEL)GO TO 780
03600 C PLUS
03700 IF(I3.EQ.IBLA)GO TO 880
03800 RD=40
03900 GO TO 500
04000 1360 CALL LISTP(LST)
04100 GO TO 130
04200
04300 1370 RA=51857895.
04400 RB=95389999.
04500 C PIZZ.
04600 1380 RD=0
04700 1390 RE=1
04800 CRR***1400 J=16
04900 1400 JA=16
05000 CRR*** REREAD 560,JA,R2,RJQ
05100 R6=RA
05200 R7=RB
05300 R8=RD
05400 IF(R5.EQ.0)R5= RE
05500 IF(R4.EQ.0)R4=14
05600 C 0=PUT IT ABOVE STAFF
05700 GO TO 900
05800 1410 RA=51704789.
05900 RB=74828584.
06000 RD=99999999.
06100 C A TEMPO
06200 GO TO 1390
06300 1420 RA=51708772.
06400 RB=84999999.
06500 C ARCO
06600 GO TO 1380
06700 1430 RA=40999999.
06800 1440 RB=0
06900 GO TO 1380
07000 C LEFT AND RIGHT PARENTHESES AND COMMA
07100 1450 RA=41999999.
07200 GO TO 1440
07300 1460 RA=36999999.
07400 RB=0
07500 RD=0
07600 RE=1.5
07700 C COMMA IS DEFAULT SIZE 1.5
07800 GO TO 1400
07900
08000 1470 CALL JUGGLE
08100 CALL CLRCUR
08200 CALL DPYNEW
08300 CHNG=0
08400 C RESET CHANGE FLAG - CLEAR EDIT MODE ERROR TRAP
08500 IF(JA.EQ.223)GO TO 1690
08600 C FOR MOVING DIRECTLY TO NEW ITEM IN EDIT MODE.
08700 IF(ZERO)GO TO 120
08800 X22=ZERO
08900 ZERO=-1
09000 IF(JA.EQ.55)GO TO 1480
09100 IF(JA.EQ.44)GO TO 1510
09200 IF(KED.NE.0)GO TO 1530
09300 GO TO 1700
09400
09500 C 55,POS -- SETS UP ALIGNMENT
09600 1480 CALL ESPOS(RLINE)
09700 GO TO 1520
09800
09900 C '223,0' EDITS LAST ITEM ENTERED
10000 1500 REDIT=999.0
10100 IF(R2.NE.0)GO TO 1550
10200 X22=ITEM
10300 IF(IOLD.EQ.0)GO TO 1710
10400 IF(IOLD.LE.ITEM)X22=IOLD
10500 GO TO 1710
10600 1510 KED=1
10700 RITEM=R3
10800 C 'ST*, STF#, CODE# (IF 0, ALL ITEMS COME UP) - STF>7 = ALL STAVES.
10900 IF(R2.GT.7)KED=2
11000 1520 REDIT=R2
11100 C THE STAFF #
11200 JED=1
11300
11400 1530 IF(EDX(RLINE).GE.0)GO TO 1670
11500 GO TO 1710
11600 C CR MOVES ALONG GIVEN LINE, 222 LEAVES THIS MODE
11700
11800 1540 CALL ACCPOG(1)
11900 IF(I.EQ.IX)ITEM=ITEM-1
12000 GO TO 1560
12100 1550 IF(X22.GT.0)GO TO 1610
12200 1560 IF(R2.NE.0)GO TO 1690
12300 IF(JA.NE.0)MINUZ=0
12400 IF(REDIT.EQ.999)GO TO 1570
12500 IF(JA.GT.0)GO TO 1530
12600
12700 1570 IF(JA.GE.0)GO TO 1580
12800 X22=X22+JA
12900 C FOR TYPING '-n'
13000 GO TO 1600
13100 1580 IF(I1.EQ.PLUS)MINUZ=0
13200 IF(I1.EQ.MINUS)MINUZ=-1
13300 C TYPE '-' WITH NO NUM. TO BACKUP WITH CRLF ONLY
13400 C TYPE '+' TO GO FORWARD
13500 IF(MINUZ.LT.0)GO TO 1590
13600 IF(REDIT.NE.999.)GO TO 1530
13700 C JUMP IF IN 'ED' OR 'ST' MODES
13800 X22=X22+1
13900 GO TO 1700
14000 1590 X22=X22-1
14100 1600 IF(X22.LT.1)GO TO 1670
14200 C EXIT FROM EDIT MODE IF GONE OFF BOTTOM
14300 GO TO 1700
14400
14500 C FOR EDITING
14600 1610 IF(JA.EQ.55)GO TO 1800
14700 1620 IF(JA.NE.223)GO TO 1630
14800 C 'I, #' WILL MOVE TO ANOTHER ITEM WHEN ALREADY IN EDIT MODE.
14900 KED=0
15000 JED=0
15100 GO TO 1650
15200 1630 IF(JA.EQ.44)GO TO 1800
15300 C FOR '24' WHILE IN EDIT MODE. MAGS WITH CURSOR AS CENTER.
15400 IF(JA.GT.100)GO TO 1640
15500 IF(JA.GT.13)GO TO 130
15600 C PARAM NUM TOO HIGH? LOOKS FOR NEXT ITEM TO EDIT IF <CR>
15700 1640 IF(X22.EQ.0)GO TO 1720
15800 IF(R2.NE.0)GO TO 1720
15900 C BACKS UP WHEN IN EDIT MODE.
16000
16100 IF(JA.GT.0)GO TO 1730
16200 IF(I.EQ.IX)GO TO 1540
16300 IF(CHNG.NE.0.AND.JA.LT.0)GO TO 130
16400 C CAN'T DO '-N' AND OTHER THINGS AFTER CHANGES IN EDIT MODE.
16500 ZERO=X22+1
16600 C '0' AFTER AN EDIT ENDS THE EDIT AND GETS NEXT ITEM FOR EDIT.
16700 1650 IF(X22.EQ.0)GO TO 120
16800 IF(KED.EQ.0)REDIT=999.
16900 1660 IF(I.NE.IX)GO TO 1470
17000 ITEM=ITEM-1
17100 C TO DELETE AN ITEM
17200 1670 X22=0
17300 MINUZ=0
17400 C MINUS SIGN FLAG (WHEN -1, CRLF=BACKUP)
17500 CHNG=0
17600 C RESET CHANGE FLAG
17700 CALL CLRCUR
17800 CALL DPYNEW
17900 IF(REDIT.EQ.999.)GO TO 1680
18000 IF(JA.EQ.55)GO TO 1480
18100 IF(JA.EQ.44)GO TO 1510
18200 1680 IF(R2.EQ.0.OR.R2.GT.ITEM)GO TO 120
18300 C DELETION IN EDIT MODE DOES NOT LEAVE MODE.
18400 1690 X22=R2
18500 1700 IF(X22.GT.ITEM)GO TO 1670
18600 C LEAVES EDIT MODE.
18700 1710 CALL BOXX
18800 GO TO 120
18900
19000 1720 IF(JA.EQ.0)GO TO 1850
19100 1730 X=100-JA
19200 IF(X)JA=JA/100
19300 IF(JA.LE.2)GO TO 1820
19400 CALL EQUAL(X)
19500 GO TO 1840
19600
19700 1740 IF(X22.EQ.0)GO TO 1770
19800 C 'C' = COPY (IN OR OUT OF EDIT MODE) CR=CRESC.
19900 CC IF(I2.EQ.IBLA)GO TO 883
20000 IF(I2.NE.IBLA)GO TO 1760
20100 1750 IF(CHNG.EQ.0)GO TO 130
20200 C CAN'T 'COPY' UNLESS CHANGES WERE MADE.
20300 IOLD=0
20400 GO TO 650
20500 1760 IF(I2.EQ.LPP)GO TO 1761
20600 C CP n =CENTER BY NOTE POSITION ***** A BUG WITH CP WHEN USING 'READ'?????
20700 IF(R2.NE.0)GO TO 1750
20800 CALL EDCEN(CB)
20900 GO TO 1110
21000 1761 CALL SETLET
21100 GO TO 1110
21200 1770 IF(I2.EQ.IBLA)GO TO 1780
21300 IF(I2.EQ.LDD)GO TO 1060
21400 C NOW 'CD', WHEN NOT IN EDIT MODE = CENTER ALL DASHES ON A LINE. (USES GRED)
21500 RD=43
21600 C NEXT FOR ME=MENO=81 MOLTO=90 CRESC.=70 MP=43 MF=50, ALSO 'MACRO'
21700 IF(I2.EQ.LAA)GO TO 2400
21800 IF(I2.EQ.LFF)RD=50
21900 IF(I2.EQ.LOH)RD=90
22000 IF(I2.EQ.LEE)RD=81
22100 IF(I2.EQ.LRR)RD=70
22200 IF(I2.NE.LTT)GO TO 880
22300 C JT=JUSTIFY TEXT (ONLY 1 STAFF AT A TIME)
22400 1780 CALL MOVER
22500 IF(R2.GE.99)GO TO 260
22600 C 99(+)=BACKUP OUT OF MOVER ETC.
22700 JFONT=0
22800 1785 IGO=0
22900 C SO IT WON'T DO ALL FONT LOOKUPS.
23000 1790 IF(JJ2)GO TO 130
23100 M=PWDS(JJ2)
23200 I=PWDS(ITEM+1)
23300 ITEM=JJ2-1
23400 ST2=WDS(JJ2)
23500 C SO IT DOESN'T HAVE TO GO THROUGH ALL ITEMS
23600 GO TO 1340
23700
23800 1800 IF(REDIT.NE.55.)REDIT=0
23900 C NEEDED FOR 'S'ET, THEN 'A'LIGNE ROUTINE
24000 IF(I2.NE.IBLA)GO TO 1660
24100 C WE GET HERE WHEN TYPING 'ST' OR 'ED' WHEN ALREADY IN EDIT MODE.
24200 IF(R2.EQ.0)GO TO 1810
24300 IF(CHNG.NE.0)GO TO 130
24400 C CATCH 'S'ET AFTER A CHANGE WAS MADE.
24500 GO TO 1660
24600 C GO PAST HERE ONLY FOR 'A'LIGN
24700 1810 IF(KED.GE.0)RLINE=RJ3
24800 RJ3=RLINE
24900 GO TO 1840
25000 C FOR '55' ALIGNING
25100 1820 IF(X)GO TO 1830
25200 CALL PARCH(JA,JJA,R2)
25300 GO TO 1840
25400 1830 RJJ2=R2+RJJ2
25500 C ARRAYS NEED 2O LOCATIONS HERE.
25600 C CHNG PARAMS WITH PAIRS OF NUMS.(EG. 2,122 4,13 5,-2 ETC.)
25700 1840 CALL RJED
25800 1850 CALL RJED2
25900 ST2=WDS(ITEM+1)
26000 I=PWDS(ITEM+1)
26100 IF(X22.NE.0)CHNG=-1
26200 C SET CHANGE FLAG TO TRAP EDIT MODE ERRORS. (CLEARED AT 172)
26300 CALL DPYNEW
26400
26500
26600
26700
26800
26900
27000
27100
27200
27300
00100 1860 J2=R2
00200 IF(J2.LT.0)GO TO 130
00300 IF(J2.GT.7)GO TO 130
00400 C STOPS TYPO ERROR ON STAFF NUM. (<0, >7)
00500 RSTJ2=RSTFAC(J2)
00600
00700 1870 IF(JA.EQ.16)GO TO 1910
00800 IF(PLT.NE.0)GO TO 2080
00900 IF(JA.NE.2)GO TO 1880
01000 IF(R8.NE.0)GO TO 2010
01100 IF(R9.NE.0)R9=0
01200 GO TO 2010
01300 1880 IF(JA.NE.8)GO TO 1900
01400 IF(R9.NE.1)GO TO 2010
01500 L=7
01600 K='INST.'
01700 C RJQ(7) IS R9
01800 1890 RA=RN(MEDIT+L+2)
01900 CALL TYPCHR(RA,5)
02000 CALL TYPCRL
02100 CALL TYPSTR('TYPE ')
02200 CALL TYPCHR(K,5)
02300 CALL TYPSTR(' NAME ')
02400 READ(IDEV,FA5)RD
02500 CALL LO2UP(RD)
02600 RJQ(L)=RD
02700 IF(RD.NE.' ')GO TO 2010
02800 IF(RN(MEDIT).LT.L)RA=0
02900 C RESTORES NAME IF THERE WAS ONE ALREADY. ELSE=0
03000 RJQ(L)=RA
03100 C WHEN P9=1 ASKS FOR ID NAME FOR THE STAFF (FOR PART EXTRACTOR)
03200 GO TO 2010
03300 CF371 FORMAT(A5,A1,A3)
03400 1900 IF(JA.NE.11)GO TO 2010
03500 C ↑↑↑↑ WAS - TO 63
03600 IF(J10.NE.1)GO TO 2010
03700 K='FILE'
03800 L=8
03900 C P10←1 GETS NAME OF BASIC DRAW FILE, PUTS IT IN P10 (NJR)
04000 GO TO 1890
04100 C IF NO NAME ASKED FOR, IT TAKES LAST NAME GIVEN.(SOLVES SORT PROB?)
04200 1910 RD=R5
04300 IF(RD.GE.100)RD=RD-100
04400 C ADD 100 TO SZ TO MAKE TEXT APPEAR IN ALL SEPARATE PARTS OF ORCH. SCORE
04500 IF(J10.EQ.0)GO TO 2000
04600 L=ITEM
04700 IF(X22.NE.0)L=X22-1
04800 IF(J10.EQ.1)GO TO 1980
04900 C TEMP. FIX TO CNVT TEXT FORMAT TO NEW STYLE. "10 99"
05000
05100 C NEXT FOR CENTERING TEXT. P10>1
05200 1950 CALL CENTXT(RD)
05300 GO TO 2000
05400 1980 CALL CONTXT
05500 C FOR TEXT CONTINUATION
05600 2000 IF(PLT.NE.0)GO TO 2080
05700 2010 CALL MORCEN(CB)
05800 C **** FOR '0' EDITS ******
05900 2070 CALL LUP2
06000 2080 IF(DP(J2).GE.0)GO TO 2090
06100 IF(JA.NE.8)GO TO 70
06200 C NOW GET SIZE FACTOR, IF IT'S THERE. (NEEDED IN 'SCORE' SECTION.)
06300 IF(R5.NE.0)RSTFAC(J2)=R5
06400 GO TO 70
06500 C*** 3/74 NEW DP SYSTEM
06600 C WHAT ABOUT EDITS?*******
06700 2090 POS=STFF(J2)
06800 RX3=R3
06900 C SAVES IT IN RJQ(20) FOR OTHER ROUTINES.
07000 J3=ROFF(RHORZ(R3))
07100 C LINE IS DIVIDED INTO 200 POINTS.
07200 CALL CENTX
07300 C SETS VERT.(CENTR) POSITION BASED ON STAFF AND R4
07400 R3=J3
07500 IF(JA.LE.2)GO TO 60
07600 2100 GO TO(2430,2430,2130,2210,2140, 2190,2150,2180,60,2120, 2130,2200)
07700 1,JA
07800 GO TO (2150,2160,2170),JA-15
07900 C FOR 16,17,18 (WORDS, KSIG, METER)
08000 IF(JA.EQ.99)GO TO 70
08100 C FOR PART EXTRACTOR TRANSPOSER - KEY SIG=0
08200 IF(JA.NE.33.AND.JA.NE.44)GO TO 2110
08300 JA=JA/11
08400 C THIS IS TEMPORARY - TO READ PAGE TEMP. FILES.
08500 GO TO 2100
08600
08700 2110 I=PWDS(ITEM+1)
08800 GO TO 130
08900 C 44 1; JFONT=ONE DISPLAYS FONTS - THIS ALSO CATCHES SOME TYPOS
09000
09100 2120 CALL MAKNUM(R5)
09200 GO TO 70
09300
09400 2130 CALL CLEFS
09500 GO TO 70
09600
09700 2140 CALL SLUR
09800 GO TO 70
09900
10000 2150 CALL ALPHA
10100 GO TO 70
10200
10300 2160 CALL KSIG
10400 GO TO 70
10500
10600 2170 CALL METER
10700 GO TO 70
10800
10900 2180 IF(R2.EQ.0)RMOV=R8
11000 CALL STAFF
11100 GO TO 70
11200 CC625 IF(J10.LT.100)GO TO 1625
11300 CC CALL BEAMX
11400 CC GO TO 160
11500
11600 2190 CALL BEAMX
11700 CC625 CALL BMSTF
11800 GO TO 70
11900 C BEAMS, STAFF LINES ****
12000 2200 CALL CIRCLE
12100 GO TO 70
12200
12300 2210 CALL ITMSUB
12400 C BAR LINES, ETC.
12500 GO TO 70
12600
12700 2220 K=0
12800 C GETS SAVED MS FILES
12900 GO TO 2230
13000 2250 K=-1
13100 C -1=FILE NAME ALREADY GIVEN
13200 2230 CALL GETMS(K)
13300 GO TO(2110,130,1320,240)K
13400 C K IS RESET IN GETMS
18100
18200 C NEXT RUNS THROUGH DATA WITH NEW CHANGES.
18300 2370 IF(M.GE.I)GO TO 2390
18400 IF(IGO.EQ.0)GO TO 2380
18500 C USE "Z" TO DO FIXUP WHEN LIST IS SCRAMBLED !?X@!ZQ
18600 IF(M.EQ.PWDS(ITEM+1))GO TO 2380
18700 K=ITEM+1
18800 CALL TYPSTR(' FIXING ITEM ')
18900 CALL TYPINT(K)
19000 CALL TYPCRL
19100 PWDS(K)=M
19200 2380 CALL RUNTHR(M)
19300 IF(EDQ.LE.0)GO TO 1860
19400 GO TO 130
19500
19600 2390 M=1
19700 IF(PLT.EQ.1)EDQ=-1
19800 PLT=0
19900 GO TO 130
20000 C ALWAYS START PLOT WITH BOTTOM UNIT ON PAGE AND WORK UP.
20100
20200 2400 CALL TYPSTR(' MACRO FILE NAME= ')
20300 ACCEPT 190,K
20400 IF(K.EQ.'99')GO TO 130
20500 C TYPE 99 TO BACKUP.
20600 CALL LO2UP(K)
20700 IF(K.EQ.IBLA)K='MACRO'
20800 CALL OFILE(1,K)
20900 CALL TYPSTR(' END MACRO WITH * ')
21000 CALL TYPCRL
21100 2410 ACCEPT 700,INP
21200 IF(I1.EQ.ISTAR)GO TO 2420
21300 WRITE(1,700)INP
21400 GO TO 2410
21500 2420 END FILE 1
21600 CALL TYPSTR(' MACRO=')
21700 CALL TYPWRD(K)
21800 CALL TYPSTR('.DAT ***** RUN IT? ')
21900 ACCEPT 700,I1
22000 CALL LO2UP(I1)
22100 IF(I1.EQ.LYY)GO TO 220
22200 GO TO 130
22300
22400 CRR***2430 FORMAT(I,24F)
22500 2430 END